package com.cskaoyan.javase._1interface._2notice.extend;

/**
 * 接口的继承
 * @since 14:42
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
}

interface IA {
    int test();
    Object test3();

    default void test2() {
        System.out.println("6666");
    }
}

// 接口继承接口后,可以重写父接口中的成员
interface IB extends IA {
    @Override
    int test();

    @Override
    String test3();

    @Override
    default void test2() {
        System.out.println("777");
    }
}

/*
    子类重写父类方法,返回值类型不是必须完全一致的:
          1.如果是基本数据类型和void,必须保持一致
          2.如果是引用数据类型,就存在自动类型转换:
            如果父类方法返回值类型是一个父类类型(接口和抽象类也是一样的)
            那么子类方法返回值类型可以是一个子类类型
 */
class Father{
    Father test(){
        return null;
    }
}
class Son extends Father{
    @Override
    Son test() {
        return null;
    }
}